Computers have become highly integrated in the workforce, in the home, in mobile devices, and many other places. Computers can process massive amounts of information quickly and efficiently. Software applications designed to run on computer systems allow users to perform a wide variety of functions including business applications, schoolwork, entertainment and more. Software applications are often designed to perform specific tasks, such as word processor applications for drafting documents, or email programs for sending, receiving and organizing email.
In many cases, software applications are designed to interact with other software applications or other computer systems. For example, web browsers allow users to access information such as web pages, email, videos, music and other types of data. In some cases, enterprises or other organizations may provide data on these web servers that is intended only for certain users (e.g. employees). In such cases, the employees typically log in and are authenticated before being given access to the data. In other scenarios, enterprises or other organizations may provide some or all of their data via a third party data host such as a cloud hosting company. Such cloud hosting companies may provide the organization's data and/or applications to a wide variety of authenticated and unauthenticated users.